Skip to content

feat(evolution-curve): name the stages; pattern examples go MIT - #8

Merged
RevenuePuzzles merged 1 commit into
mainfrom
claude/evolution-curve-stages
Sep 3, 2026
Merged

feat(evolution-curve): name the stages; pattern examples go MIT#8
RevenuePuzzles merged 1 commit into
mainfrom
claude/evolution-curve-stages

Conversation

@RevenuePuzzles

Copy link
Copy Markdown
Contributor

What this PR does

Two follow-ups, both settled on the principle the repo now runs on. schemas/aux-evolution-curve.yaml names the capability stages, closing the last open half of #5 — the axis was placed with the human in a teardown by #6, and this gives that human something to score against. Separately, pattern example.py files move to MIT, which is the loose end #7 deliberately left rather than settling quietly inside a PR about schemas.

Linked Issue

Closes #5. Follows up #7.

Type

  • New pattern
  • New gap
  • Teardown
  • Framework edit (must include rationale, ID migration note if renamed, updated examples)
  • Schema fix
  • Doc fix / typo / link
  • Other

New vocabulary — the aux.E* ID space — introduced with #5 settled first, as CONTRIBUTING requires. No existing ID is renamed, so no migration note applies.

The stages

aux.E01 Reactive → aux.E02 Task-Aware → aux.E03 Context-Aware → aux.E04 Personally Intelligent.

Keeps task-aware and personally-intelligent, the two names already loose in the repo, so nothing previously written becomes wrong.

Because option B assigns this axis to a human watching a product, each stage carries observed_when — what you must actually see to award it — and not_evidence, the near-miss that does not count. E04's near-miss is a settings page. E03's is reciting stored preferences back, which is E02 with memory. That distinction is the whole reason the axis is worth having.

Two decisions #5 left open

Ordinal, not a profile. One stage per product: the highest reached reliably, where reliably means demonstrated in two distinct scenarios. One clever transcript is an anecdote, and the curve is supposed to describe what a user can rely on. Uneven capability across surfaces is recorded in evolution_surfaces rather than averaged away — the spread is usually the finding, not noise.

cascades: false, stated in the schema. Trust cascades by design: one advocacy violation collapses it back to functional. Capability does not. A product that fails at E04 has not become E01; it has demonstrated E04 unreliably. Copying the trust ladder's mechanics onto this axis would have been the easy mistake, so the schema rules it out explicitly rather than leaving it to be inferred.

aux-audit still never reads this file, and the schema header says so.

Pattern examples are MIT

example.py is the one artifact this repo explicitly labels copy-paste. CC BY 4.0 on it reproduced exactly the friction #7 removed from schemas/: a file whose entire purpose is to end up inside someone else's codebase should not send them to their legal team first.

Each now carries SPDX-License-Identifier: MIT, which is what a license scanner actually reads. The write-ups, anti-patterns and diagrams stay CC BY 4.0. The rule still fits on one line: embed it, MIT; read it, CC BY.

Contribution bar — checklist

  • I've read CONTRIBUTING.md.
  • If this introduces or renames an ID, I opened a debate Issue first. — aux.E* is new vocabulary; [schema] aux-evolution-curve: define the capability axis, or retire it #5 was opened, argued, and decided before any of it was written.
  • If this adds a pattern, it has a diagram, a runnable example, and an anti-pattern. — n/a, no patterns added; the seven existing ones still pass check-coverage.py.
  • If this adds a gap, it has a reproducible scenario and references a heuristic or trust stage. — n/a.
  • CI passes (schema validation, link check). — verified locally: yamllint clean on the new schema, 34/34 aux-audit tests, check:schemas clean, check-coverage.py 12/12 with all seven examples still exiting 0 after the SPDX headers, all relative links resolve, and the teardown score.json still parses as strict JSON.
  • No emoji in code or schemas.
  • Short sentences. Named things over adjectives.

Out of scope

docs/releases/v0.2.md still says the stage names are open. That was true at v0.2, and a release note is a record of what shipped rather than a status page. Editing it would rewrite history to look tidier than it was.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MhpqWEvwKp7NrmJfdXYq4M


Generated by Claude Code

Two follow-ups from #5 and #7, both settled on the same principle the repo
now runs on.

## Evolution Curve stages (closes #5)

schemas/aux-evolution-curve.yaml defines E01 Reactive, E02 Task-Aware,
E03 Context-Aware, E04 Personally Intelligent. It keeps task-aware and
personally-intelligent, the two names already loose in the repo, so
nothing previously written becomes wrong.

Under option B the axis is scored by a human watching a product, so every
stage carries observed_when — what you must see to award it — and
not_evidence, the near-miss that does not count. E04's near-miss is a
settings page; E03's is reciting stored preferences, which is E02 with
memory.

Two decisions the Issue left open:

- Ordinal, not a profile: one stage per product, the highest reached
  *reliably*, where reliably means two distinct scenarios. One clever
  transcript is an anecdote. Uneven capability across surfaces is
  recorded in evolution_surfaces rather than averaged away — the spread
  is usually the finding.
- cascades: false, stated in the schema. Trust cascades by design: one
  advocacy violation collapses it back to functional. Capability does
  not. A product failing at E04 has not become E01; it has demonstrated
  E04 unreliably. Copying the trust ladder's mechanics here would have
  been the easy mistake.

aux-audit still never reads this file. The schema header says so.

## Pattern examples are MIT

example.py files are the one artifact this repo explicitly labels
copy-paste, so CC BY 4.0 on them reproduced exactly the friction #7
removed from schemas: a file whose whole purpose is to end up inside
someone else's codebase should not send them to their legal team.

Each carries SPDX-License-Identifier: MIT, which is what a license
scanner actually reads. The write-ups, anti-patterns and diagrams stay
CC BY 4.0. The rule holds at one line: embed it, MIT; read it, CC BY.

Not touched: docs/releases/v0.2.md still says the stage names are open.
That was true at v0.2 and release notes are a record, not a status page.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MhpqWEvwKp7NrmJfdXYq4M
@RevenuePuzzles
RevenuePuzzles merged commit 7e33dd4 into main Sep 3, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[schema] aux-evolution-curve: define the capability axis, or retire it

2 participants